Domain Event
データ構造ではなく、ビジネスイベントやワークフローに注目する
どんな業務も何かしらのevnetを基点に起きる
e.g. メールを受け取ったら、◯◯する
e.g. 毎日10時になったら、◯◯する
業務は、eventの連鎖である
Domain Eventに着目することで、そのdomainのビジネスの理解を深めていく
Domain Eventは何によって引き起こされるか
別のDomain Event
スケジューラやモニタリングシステム
Domain Eventを洗い出す方法の例
参考
「コト」と呼んでるものがDomain Event
Domain Eventがデータを更新するタイミングになる?
updateするきっかけを列挙できると良い
Domain Eventは、決して変更されない
Dmain Event自体はデータとしてimmutable
事実
一つの日時しか持たない
複数の日時が必要ならeventの分け方としておかしい
ちょっと別の話だが
コトを表すtableはupdateしてはいけない
これはDBの話だけど、具体例をイメージしやすいかもしれない
業務活動で起こる事象
ヒトとモノの関係として出現する
時間軸に沿って明確な前後関係を持つ
対象、種別、時点をデータとして持つ
対象
何についての発生した事象か
種別
どういう種類の事象か
時点
いつ起きた事象か
e.g.
注文
商品(モノ)とuser(ヒト)の関係を表現したもの
Reduxのactionはコトと言えそうmrsekut.icon
事象を溜めて、未来過去に移動できる感じ
あれはOOPではないけど、action creatorが発行するobjectというコトデータを生成している
例えば、「userをfollowする」という行為もコトデータ